package com.xy.api.service.common;

import com.xy.api.model.dto.common.UnitDTO;
import com.xy.api.model.request.common.UnitRequest;

import java.math.BigDecimal;
import java.util.List;

public interface IUnitService {

    /**
     * 查询单位列表
     *
     * @param request
     * @return
     */
    List<UnitDTO> queryUnitList(UnitRequest request);

    /**
     * 查询单位详情
     *
     * @param id
     * @return
     */
    UnitDTO queryUnitDetail(Long id);

    /**
     * 编辑单位
     *
     * @param request
     */
    void editUnit(UnitDTO request);

    /**
     * 删除单位
     *
     * @param id
     */
    void deleteUnit(Long id);

    /**
     * 单位转换(保留6位小数)
     *
     * @param type         类型
     * @param fromUnitCode 来源单位
     * @param toUnitCode   目标单位
     * @param value        值
     * @return
     */
    BigDecimal convertUnit(Integer type, String fromUnitCode, String toUnitCode, BigDecimal value);

    /**
     * 获取实时汇率
     */
    List<UnitDTO> getExchangeRate();

    /**
     * 更新实时汇率
     */
    void updateExchangeRate();
}
